package com.neusoft.aclome.cmp.cloud.server.jcce.dto.response;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.neusoft.aclome.cmp.cloud.server.jcce.constants.ProprietorshipStatusEnum;
import com.neusoft.aclome.cmp.cloud.server.jcce.constants.ResourceApplyStatusEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import javax.persistence.Column;
import java.math.BigDecimal;
import java.util.Date;

@ApiModel(value = "DataResourceDTO", description = "数据资源传输对象")
public class DataResourceDTO {
    /**
     * 数据资源ID
     */
    @ApiModelProperty(value = "数据资源ID")
    private Integer id;

    /**
     * 数据资源名称
     */
    @ApiModelProperty(value = "数据资源名称")
    private String name;

    @ApiModelProperty(value = "所有权审核状态")
    /**
     * 所有权审核状态
     */
    private ProprietorshipStatusEnum proprietorshipStatus;

    private String userId;
    /**
     * 所有权审核状态
     */
    @ApiModelProperty(value = "所有权审核状态文言")
    private String proprietorshipStatusLocalName;
    /**
     * 申请状态
     */
    @ApiModelProperty(value = "申请状态")
    private ResourceApplyStatusEnum resourceApplyStatus;
    /**
     * 申请状态文言
     */
    @ApiModelProperty(value = "申请状态文言")
    private String resourceApplyStatusLocalName;

    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    private Date createdAt;

    /**
     * 修改时间
     */
    @ApiModelProperty(value = "修改时间")
    private Date updatedAt;
    @ApiModelProperty(value = "数据文件名称")
    /**
     * 数据文件名称
     */
    private String dataFileName;
    @ApiModelProperty(value = "证明文件名称")
    /**
     * 证明文件名称
     */
    private String proofFileName;

    /**
     * 数据文件签名
     */
    private String dataFileSignature;

    /**
     * 价格
     */
    @ApiModelProperty(value = "价格")
    private BigDecimal price;

    /**
     * 数据类型
     */
    @ApiModelProperty(value = "数据类型")
    private String dataType;
    /**
     * 数据分类
     */
    @ApiModelProperty(value = "数据分类")
    private String dataCategory;

    /**
     * 注册时间
     */
    @ApiModelProperty(value = "注册时间")
    private Date registrationTime;

    /**
     * 数据格式
     * eg： .docx
     */
    @ApiModelProperty(value = "数据格式")
    private String dataFormat;
    /**
     * 封面（拼接时间戳之后的名称）
     */
    @ApiModelProperty(value = "封面（拼接时间戳之后的名称）")
    private String imageName;
    /**
     * 文件大小
     */
    @ApiModelProperty(value = "文件大小")
    private String dataSize;
    /**
     * 描述
     */
    @ApiModelProperty(value = "描述")
    private String description;

    /**
     * 数据提供者
     * 用户名
     */
    @ApiModelProperty(value = "数据提供者")
    private String dataSupplier;
    /**
     * 权属信息
     */
    private JSONArray ownerships;
    /**
     * 使用权明细
     */
    private String usageRightDetail;

    private String proofType;

    /**
     * 获取数据资源ID
     *
     * @return id - 数据资源ID
     */
    public Integer getId() {
        return id;
    }

    /**
     * 设置数据资源ID
     *
     * @param id 数据资源ID
     */
    public void setId(Integer id) {
        this.id = id;
    }

    /**
     * 获取数据资源名称
     *
     * @return name - 数据资源名称
     */
    public String getName() {
        return name;
    }

    /**
     * 设置数据资源名称
     *
     * @param name 数据资源名称
     */
    public void setName(String name) {
        this.name = name;
    }


    /**
     * 获取创建时间
     *
     * @return created_at - 创建时间
     */
    public Date getCreatedAt() {
        return createdAt;
    }

    /**
     * 设置创建时间
     *
     * @param createdAt 创建时间
     */
    public void setCreatedAt(Date createdAt) {
        this.createdAt = createdAt;
    }

    /**
     * 获取修改时间
     *
     * @return updated_at - 修改时间
     */
    public Date getUpdatedAt() {
        return updatedAt;
    }

    /**
     * 设置修改时间
     *
     * @param updatedAt 修改时间
     */
    public void setUpdatedAt(Date updatedAt) {
        this.updatedAt = updatedAt;
    }

    /**
     * 获取数据文件名称
     *
     * @return data_file_name - 数据文件名称
     */
    public String getDataFileName() {
        return dataFileName;
    }

    /**
     * 设置数据文件名称
     *
     * @param dataFileName 数据文件名称
     */
    public void setDataFileName(String dataFileName) {
        this.dataFileName = dataFileName;
    }

    /**
     * 获取证明文件名称
     *
     * @return proof_file_name - 证明文件名称
     */
    public String getProofFileName() {
        return proofFileName;
    }

    /**
     * 设置证明文件名称
     *
     * @param proofFileName 证明文件名称
     */
    public void setProofFileName(String proofFileName) {
        this.proofFileName = proofFileName;
    }

    public ProprietorshipStatusEnum getProprietorshipStatus() {
        return proprietorshipStatus;
    }

    public void setProprietorshipStatus(ProprietorshipStatusEnum proprietorshipStatus) {
        this.proprietorshipStatus = proprietorshipStatus;
    }

    public String getProprietorshipStatusLocalName() {
        return proprietorshipStatusLocalName;
    }

    public void setProprietorshipStatusLocalName(String proprietorshipStatusLocalName) {
        this.proprietorshipStatusLocalName = proprietorshipStatusLocalName;
    }

    public String getDataFileSignature() {
        return dataFileSignature;
    }

    public void setDataFileSignature(String dataFileSignature) {
        this.dataFileSignature = dataFileSignature;
    }

    public BigDecimal getPrice() {
        return price;
    }

    public void setPrice(BigDecimal price) {
        this.price = price;
    }

    public String getDataType() {
        return dataType;
    }

    public void setDataType(String dataType) {
        this.dataType = dataType;
    }

    public String getDataCategory() {
        return dataCategory;
    }

    public void setDataCategory(String dataCategory) {
        this.dataCategory = dataCategory;
    }

    public Date getRegistrationTime() {
        return registrationTime;
    }

    public void setRegistrationTime(Date registrationTime) {
        this.registrationTime = registrationTime;
    }

    public String getDataFormat() {
        return dataFormat;
    }

    public void setDataFormat(String dataFormat) {
        this.dataFormat = dataFormat;
    }

    public String getImageName() {
        return imageName;
    }

    public void setImageName(String imageName) {
        this.imageName = imageName;
    }

    public String getDataSize() {
        return dataSize;
    }

    public void setDataSize(String dataSize) {
        this.dataSize = dataSize;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public ResourceApplyStatusEnum getResourceApplyStatus() {
        return resourceApplyStatus;
    }

    public void setResourceApplyStatus(ResourceApplyStatusEnum resourceApplyStatus) {
        this.resourceApplyStatus = resourceApplyStatus;
    }

    public String getResourceApplyStatusLocalName() {
        return resourceApplyStatusLocalName;
    }

    public void setResourceApplyStatusLocalName(String resourceApplyStatusLocalName) {
        this.resourceApplyStatusLocalName = resourceApplyStatusLocalName;
    }

    public String getDataSupplier() {
        return dataSupplier;
    }

    public void setDataSupplier(String dataSupplier) {
        this.dataSupplier = dataSupplier;
    }

    public JSONArray getOwnerships() {
        return ownerships;
    }

    public void setOwnerships(JSONArray ownerships) {
        this.ownerships = ownerships;
    }

    public String getUsageRightDetail() {
        return usageRightDetail;
    }

    public void setUsageRightDetail(String usageRightDetail) {
        this.usageRightDetail = usageRightDetail;
    }

    public String getUserId() {
        return userId;
    }

    public void setUserId(String userId) {
        this.userId = userId;
    }

    public String getProofType() {
        return proofType;
    }

    public void setProofType(String proofType) {
        this.proofType = proofType;
    }
}